home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Nordlicht Spiele
/
Nordlicht Spiele 24-08 (19xx)(Nordlicht)(DE)(PD).zip
/
Nordlicht Spiele 24-08 (19xx)(Nordlicht)(DE)(PD).adf
/
Pacman-ASC
< prev
next >
Wrap
Text File
|
1993-07-13
|
15KB
|
411 lines
'
' Pacmans return source code by Tony Brice (c) 1993.
'
' Remember to load all the system files before attempting to run
' this game. See Read-me file for more information.
'
' 13th July 1993.
'
SETUP:
Curs Off : Flash Off : Cls 0 : Hide
Reserve As Work 2,4320 : Load "df0:map-data.work",2
FF$="ABCDEFGHIJKLMNOPQRST" : SMAP=1 : SM=1 : SOUND=1 : STYLE=0
Dim HI(5),HI$(5) : For T=5 To 1 Step -1 : HI(T)=11000-(T*2000) : Next T
For T=5 To 1 Step -1 : Read HI$(T) : Next T
Data "ANON","CARL","GARY","LEE!","TONY"
Dim MAPDATA(13,19),GHOST(3,5),EX(3),EY(3),EXD(3),EYD(3),CD(4),MUS(7)
For T=1 To 4 : Read CD(T) : Next T
Data 3,1,4,2
For T=1 To 7 : Read MUS(T) : Next T
Data 5,5,6,6,7,7,8
Screen Open 0,320,200,32,Lowres : Flash Off : Screen Hide 0 : Unpack 6 To 0
TITLE:
Screen Show 0 : Screen 0 : Paper 0 : Pen 1 : Screen Display 0,,45,,
ST=0 : SS=0 : MM=1 : Music 1
Locate 2,2 : Print "Skill : Maps :"
Locate 2,3 : Print "Style of game :"
Locate 2,5 : Print "S- save : L- load : R- Reset scores" : Gosub SEESET
BEGIN:
Gosub CREDITS
If ST=1 Then Goto GO
Gosub CLEARBOX : Gosub HISC
If ST=1 Then Goto GO
Gosub CLEARBOX : Gosub CRED
If ST=1 Then Goto GO
Gosub CLEARBOX : Gosub BSL
If ST=1 Then Goto GO
Gosub CLEARBOX : Gosub MESSAGE
If ST=1 Then Goto GO
Gosub CLEARBOX : Goto BEGIN
SVSC:
Open Out 1,"pac.score"
For T=1 To 5 : Print #1,HI(T) : Print #1,HI$(T) : Next T
Close 1 : Return
LDSC:
Open In 1,"pac.score"
For T=1 To 5 : Input #1,HI(T) : Input #1,HI$(T) : Next T
Close 1 : Return
KEYCHECK:
A$=Inkey$ : If Fire(1) Then ST=1
If A$="f" Then SS=1
If A$="l" Then Gosub LDSC : SS=1
If A$="s" Then Gosub SVSC
If A$="r" Then For T=1 To 5 : HI(T)=1000 : HI$(T)="NONE" : Next T : SS=1
If A$="m" Then Gosub MUSCHECK
If A$="q" Then Music Off : Screen Close 0 : Edit
If A$="C" Then CHEAT=1-CHEAT : Gosub SEESET
If Joy(1)=1 Then SKILL=1-SKILL : Gosub SEESET
If Joy(1)=2 Then SKILL=1-SKILL : Gosub SEESET
If Joy(1)=4 Then SMAP=SMAP+10 : Gosub SEESET
If Joy(1)=8 Then STYLE=1-STYLE : Gosub SEESET
Return
SEESET:
Pen 2 : If SMAP>11 Then SMAP=1
If CHEAT=0 Then Locate 17,4 : Print " ";
If SMAP=11 Then Locate 30,2 : Print "Custom ";
If SMAP=1 Then Locate 30,2 : Print "Default";
If CHEAT=1 Then Locate 17,4 : Print "CHEAT";
If STYLE=0 Then Locate 18,3 : Print "Arcade";
If STYLE=1 Then Locate 18,3 : Print "Normal";
If SKILL=0 Then Locate 10,2 : Print "Easy";
If SKILL=1 Then Locate 10,2 : Print "Hard";
For K=1 To 5000 : Next K
Return
HISC:
Locate 15,9 : Pen 2 : Paper 0 : Print "Top Scores"
Locate 15,10 : Pen 4 : Print "----------"
For T=5 To 1 Step -1 : Locate 13,11+T : Pen T+2
Print T;HI(T);" ";HI$(T)
Next T : T=0 : CN=1
HILOOP:
T=T+1 : For G=24 To 31 : Pen G : Locate 14,12 : Print "1";HI(1);" ";HI$(1)
Gosub KEYCHECK : For X=1 To 200 : Next X : Next G : If ST=1 Then Return
If SS=1 Then SS=0 : Return
For G=31 To 24 Step -1 : Pen G : Locate 14,12 : Print "1";HI(1);" ";HI$(1)
Gosub KEYCHECK : For X=1 To 200 : Next X : Next G : Gosub ANI : If ST=1 Then Return
If SS=1 Then SS=0 : Return
If T<20 Then Goto HILOOP
Return
ANI:
CN=CN+1 : If CN>4 Then CN=1
Bob 1,95,90,CD(CN) : Bob 2,210,90,CD(CN) : Return
BSL:
Pen 5 : Locate 14,10 : Print " A"
Pen 4 : Locate 14,12 : Print "BINARY SYSTEMS"
Pen 12 : Locate 14,14 : Print " PRODUCTION"
Pen 14 : Locate 14,16 : Print " (C) 1993" : T=1
BLOOP:
T=T+1 : If T>2000 Then Return
Gosub KEYCHECK : If ST=1 Then Return
If SS=1 Then SS=0 : Return
Goto BLOOP
CRED:
Pen 4 : Locate 14,10 : Print "Playtesting by"
Pen 12 : Locate 14,12 : Print " Lee Stothers"
Pen 15 : Locate 14,14 : Print " Gary Pearce"
Pen 17 : Locate 14,16 : Print "& Carl Manley"
CLOOP:
T=T+1 : If T>3000 Then Return
Gosub KEYCHECK : If ST=1 Then Return
If SS=1 Then SS=0 : Return
Goto CLOOP
MESSAGE:
Locate 12,10 : Pen 5 : Print "F to Fastforward" : Z=220 : ZZ=90 : X=1
Locate 13,12 : Pen 3 : Print "M Toggle Music"
Locate 13,14 : Pen 1 : Print " Fire to Play"
MESLOOP:
X=X+1 : Gosub KEYCHECK : If ST=1 Then Return
If SS=1 Then SS=0 : Return
Z=Z-1 : ZZ=ZZ+1 : Bob 1,Z,90,2 : Bob 2,ZZ,110,8
Locate 14,16 : Pen 27+Rnd(1*4) : Print "Score :";SC
For XX=1 To 300 : Next XX : If X<130 Then Goto MESLOOP
MESTWO:
X=X-1 : Gosub KEYCHECK : If ST=1 Then Return
If SS=1 Then SS=0 : Return
Z=Z+1 : ZZ=ZZ-1 : Bob 1,Z,90,1 : Bob 2,ZZ,110,8
Locate 14,16 : Pen 27+Rnd(1*4) : Print "Score :";SC
For XX=1 To 100 : Next XX : If X>1 Then Goto MESTWO
Return
CREDITS:
Locate 14,9 : Pen 1 : Print "P A C M A N S"
Locate 15,11 : Pen 3 : Print "R E T U R N"
Locate 14,15 : Pen 6 : Print "By Tony Brice"
Locate 14,17 : Pen 8 : Print "in Amos Basic"
Bob 1,125,100,5 : Bob 2,145,100,6 : Bob 3,165,100,7 : Bob 4,185,100,8 : G=1
CREDIT:
G=G+1 : Gosub KEYCHECK : If ST=1 Then Return
If SS=1 Then SS=0 : Return
If G>5000 Then Return
Goto CREDIT
CLEARBOX:
Ink 0 : Bob Off : Y=72 : Y1=144 : X=93 : X1=233
For G=1 To 35 : Box X,Y To X1,Y1 : X=X+2 : Y=Y+2
For T=1 To 100 : Next T : Next G
X=93 : Y=72 : Y1=144 : X1=233
For G=1 To 72 : Box X,Y To X1,Y1 : X1=X1-1 : Y1=Y1-1
For T=1 To 100 : Next T : Next G : Return
MUSCHECK:
MM=1-MM : If MM=0 Then Music Off : Return
Music 1 : Return
GO:
Gosub CLEARBOX : Screen Hide 0
Music Off : Bob Off : Screen Open 2,320,20,16,Lowres
Curs Off : Flash Off : Hide : Pen 2 : Paper 0 : Cls 0 : SC=0 : LI=3
NEWLOOP:
Screen Open 1,320,224,16,Lowres
Pen 0 : Paper 0 : Cls 0 : Curs Off : Flash Off : Get Sprite Palette
Screen Display 1,,70,,
Screen 1 : POSITION=Start(2)+(SMAP-1)*247
Cls 0 : Screen Hide 1
ICONY=0 : ZZ=0
For A=0 To 12 : ICONX=0
For B=0 To 18 : Paste Bob ICONX,ICONY,Peek(POSITION+A*19+B)
Add ICONX,16 : MAPDATA(A,B)=Peek(POSITION+A*19+B)
If Peek(POSITION+A*19+B)=24 Then ZZ=ZZ+1
Next B : Add ICONY,16 : Next A : PL=ZZ : Double Buffer
Gosub SCORESHOW : Screen Show 1 : GP=0 : PMV=1
SEEPACMAN:
DESX=144 : DESY=128 : Y=8 : X=9 : CN=3 : POW=0 : DR=0
EX(1)=126 : EX(2)=144 : EX(3)=161 : PX=144 : PY=128 : EXD(1)=126 : EXD(2)=144 : EXD(3)=161
For T=1 To 3 : EY(T)=97 : EYD(T)=97 : GHOST(T,1)=7+T : GHOST(T,2)=6 : GHOST(T,3)=1
Bob T+1,EX(T),EY(T),T+5 : GHOST(T,5)=0 : Next T : AN=18 : For T=5 To 11
AN=AN-1 : Bob 1,PX,PY,AN : If SOUND=1 Then Sam Play 15,3,T*1000
For G=1 To 2000 : Next G : Next T
If SKILL=0 Then UD=1
If SKILL=1 Then UD=2
MOVEPLAYER:
A$=Inkey$ : If A$="q" Then LI=1 : Goto GAMEOVER
If A$="p" Then G=1 : Gosub PAUSE
If A$="l" and CHEAT=1 Then Goto FINISHLEVEL
If A$="C" Then CHEAT=1-CHEAT : Gosub SCORESHOW
If A$="s" Then SOUND=1-SOUND : Sam Play 15,3,12000
If GP=PL Then Goto FINISHLEVEL
If POW>0 Then POW=POW-1 : POWP=POWP+1 : If POWP>10 Then POWP=1 : If SOUND=1 Then Sam Play 3,4,12000
If POW<1 Then GHOST(1,5)=0 : GHOST(2,5)=0 : GHOST(3,5)=0
If EG>2 Then POW=0
ZX=1 : If SKILL=1 Then ZX=2
If POW>0 Then ZX=4
If DESX=PX and DESY=PY Then Goto CHECKMOVE
If DESX>PX Then PX=PX+ZX : Goto MOVEENEMY
If DESX<PX Then PX=PX-ZX : Goto MOVEENEMY
If DESY>PY Then PY=PY+ZX : Goto MOVEENEMY
If DESY<PY Then PY=PY-ZX : Goto MOVEENEMY
CHECKMOVE:
If X<1 and Jleft(1) Then WP=1 : Gosub WARP
If X<1 and DR=3 Then WP=1 : Gosub WARP
If X>17 and DR=4 Then WP=2 : Gosub WARP
If X>17 and Jright(1) Then WP=2 : Gosub WARP
If MAPDATA(Y,X)=24 Then SC=SC+1 : GP=GP+1 : Gosub CLEAR : If SOUND=1 Then Sam Play 12,6,9000
If MAPDATA(Y,X)=25 Then Gosub CLEAR : POW=400 : For G=1 To 3 : GHOST(G,5)=1 : Next G : EG=0 : If SOUND=1 Then Sam Play 12,5,7000
PUP=MAPDATA(Y-1,X) : PDOWN=MAPDATA(Y+1,X)
If X>0 Then PLEFT=MAPDATA(Y,X-1)
If X<18 Then PRIGHT=MAPDATA(Y,X+1)
If Jup(1) and PUP<>23 Then DESY=DESY-16 : Y=Y-1 : CN=3 : DR=1 : Goto MOVEENEMY
If Jdown(1) and PDOWN<>23 Then DESY=DESY+16 : Y=Y+1 : CN=4 : DR=2 : Goto MOVEENEMY
If Jleft(1) and PLEFT<>23 Then DESX=DESX-16 : X=X-1 : CN=2 : DR=3 : Goto MOVEENEMY
If Jright(1) and PRIGHT<>23 Then DESX=DESX+16 : X=X+1 : CN=1 : DR=4 : Goto MOVEENEMY
If STYLE=1 Then Goto MOVEENEMY
If DR=1 and PUP<>23 Then DESY=DESY-16 : Y=Y-1 : CN=3
If DR=1 and PUP=23 Then DR=0
If DR=2 and PDOWN<>23 Then DESY=DESY+16 : Y=Y+1 : CN=4
If DR=2 and PDOWN=23 Then DR=0
If DR=3 and PLEFT<>23 Then DESX=DESX-16 : X=X-1 : CN=2
If DR=3 and PLEFT=23 Then DR=0
If DR=4 and PRIGHT<>23 Then DESX=DESX+16 : X=X+1 : CN=1
If DR=4 and PRIGHT=23 Then DR=0
MOVEENEMY:
Bob 1,PX,PY,CN : For T=1 To 3
If POW>0 and GHOST(T,5)=1 Then Bob T+1,EX(T),EY(T),9
If Bob Col(T+1) and Bob Col(1) and GHOST(T,5)=1 Then Gosub ZAP : Goto MOVEME
If Bob Col(T+1) and Bob Col(1) and GHOST(T,5)=0 and CHEAT=0 Then Goto GAMEOVER
MOVEME:
If EXD(T)=EX(T) and EYD(T)=EY(T) Then Goto ENEMYMOVE
If EXD(T)>EX(T) Then EX(T)=EX(T)+UD
If EXD(T)<EX(T) Then EX(T)=EX(T)-UD
If EYD(T)>EY(T) Then EY(T)=EY(T)+UD
If EYD(T)<EY(T) Then EY(T)=EY(T)-UD
Goto MOVEOVER
WARP:
If SOUND=1 Then Sam Play 3,7,12000
If WP=1 Then PX=288 : X=18 : DESX=PX : Return
PX=0 : X=0 : DESX=0 : Return
ENEMYMOVE:
If GHOST(T,1)<1 Then WP=1 : Gosub GHOSTWARP
If GHOST(T,1)>17 Then WP=2 : Gosub GHOSTWARP
If GHOST(T,1)>0 and GHOST(T,1)<18 and GHOST(T,5)=0 Then Gosub SEARCH
XX=GHOST(T,1) : YY=GHOST(T,2)
UP=0 : DWN=0 : RIGHT=0 : LEFT=0
If MAPDATA(YY-1,XX)<>23 Then UP=1
If MAPDATA(YY+1,XX)<>23 Then DWN=1
If MAPDATA(YY,XX+1)<>23 Then RIGHT=1
If MAPDATA(YY,XX-1)<>23 Then LEFT=1
If GHOST(T,4)=1 Then Goto MOVEEND
Randomize Timer : C=Rnd(1*3)+1
If C=4 Then Goto MOVEEND
If GHOST(T,3)>2 Then Goto NEWSUB
If LEFT=1 and GHOST(T,1)>X and GHOST(T,5)=0 Then GHOST(T,3)=4
If RIGHT=1 and GHOST(T,1)<X and GHOST(T,5)=0 Then GHOST(T,3)=3
If LEFT=1 and GHOST(T,1)=X and C=1 and POW=0 Then GHOST(T,3)=4
If RIGHT=1 and GHOST(T,1)=X and C=2 and POW=0 Then GHOST(T,3)=3
If LEFT=0 and DWN=0 Then GHOST(T,3)=3
If RIGHT=0 and DWN=0 Then GHOST(T,3)=4
If LEFT=0 and UP=0 Then GHOST(T,3)=3
If RIGHT=0 and UP=0 Then GHOST(T,3)=4
If GHOST(T,3)=1 and UP=0 Then GHOST(T,3)=2
If GHOST(T,3)=2 and DWN=0 Then GHOST(T,3)=1
If UP=0 and DWN=0 and LEFT=0 Then GHOST(T,3)=3
If UP=0 and DWN=0 and RIGHT=0 Then GHOST(T,3)=4
Goto MOVEEND
NEWSUB:
If UP=1 and GHOST(T,2)>Y and GHOST(T,5)=0 Then GHOST(T,3)=1
If DWN=1 and GHOST(T,2)<Y and GHOST(T,5)=0 Then GHOST(T,3)=2
If UP=1 and GHOST(T,2)=Y and C=1 and POW=0 Then GHOST(T,3)=1
If DWN=1 and GHOST(T,2)=Y and C=2 and POW=0 Then GHOST(T,3)=2
If LEFT=0 and DWN=0 Then GHOST(T,3)=1
If RIGHT=0 and DWN=0 Then GHOST(T,3)=1
If LEFT=0 and UP=0 Then GHOST(T,3)=2
If RIGHT=0 and UP=0 Then GHOST(T,3)=2
If GHOST(T,3)=3 and RIGHT=0 Then GHOST(T,3)=4
If GHOST(T,3)=4 and LEFT=0 Then GHOST(T,3)=3
If LEFT=0 and RIGHT=0 and UP=0 Then GHOST(T,3)=2
If LEFT=0 and RIGHT=0 and DWN=0 Then GHOST(T,3)=1
MOVEEND:
If GHOST(T,3)=1 and UP=1 Then EYD(T)=EYD(T)-16 : GHOST(T,2)=GHOST(T,2)-1
If GHOST(T,3)=2 and DWN=1 Then EYD(T)=EYD(T)+16 : GHOST(T,2)=GHOST(T,2)+1
If GHOST(T,3)=3 and RIGHT=1 Then EXD(T)=EXD(T)+16 : GHOST(T,1)=GHOST(T,1)+1
If GHOST(T,3)=4 and LEFT=1 Then EXD(T)=EXD(T)-16 : GHOST(T,1)=GHOST(T,1)-1
MOVEOVER:
Bob T+1,EX(T),EY(T),T+5 : Next T : Goto MOVEPLAYER
GHOSTWARP:
If SOUND=1 Then Sam Play 3,6,12000
If WP=1 Then EX(T)=288 : GHOST(T,1)=17 : EXD(T)=272 : Return
EX(T)=0 : GHOST(T,1)=1 : EXD(T)=16 : Return
ZAP:
Bob T+1,EX(T),EY(T),20 : EG=EG+1
SC=SC+30*T : GHOST(T,1)=9 : GHOST(T,2)=6 : EX(T)=144 : EXD(T)=144
EY(T)=97 : EYD(T)=97 : GHOST(T,3)=1 : GHOST(T,5)=0
For G=1 To 2000 : Next G : If SOUND=1 Then Sam Play 3,5,5000
For G=1 To 2000 : Next G
Gosub SCORESHOW : Bob T+1,EX(T),EY(T),T+7 : Return
SEARCH:
GHOST(T,4)=0
YY=GHOST(T,2) : XX=GHOST(T,1)
Repeat
If YY=Y and XX=X Then GHOST(T,3)=1 : GHOST(T,4)=1
YY=YY-1
Until MAPDATA(YY,XX)=23
YY=GHOST(T,2) : XX=GHOST(T,1)
Repeat
If YY=Y and XX=X Then GHOST(T,3)=2 : GHOST(T,4)=1
YY=YY+1
Until MAPDATA(YY,XX)=23
XX=GHOST(T,1) : YY=GHOST(T,2)
Repeat
If XX=X and YY=Y Then GHOST(T,3)=3 : GHOST(T,4)=1
XX=XX+1
Until MAPDATA(YY,XX)=23 or XX=18
XX=GHOST(T,1) : YY=GHOST(T,2)
Repeat
If XX=X and YY=Y Then GHOST(T,3)=4 : GHOST(T,4)=1
XX=XX-1
Until MAPDATA(YY,XX)=23 or XX=0
Return
CLEAR:
MAPDATA(Y,X)=1 : Paste Bob PX,PY,22 : Gosub SCORESHOW : Return
SCORESHOW:
Screen 2 : Locate 3,0 : Pen 2 : Paper 0
Print "Sc =";SC;" Li =";LI;" Lev = ";
If SKILL=0 Then Print "E";
If SKILL=1 Then Print "H";
Print " Scr = ";Mid$(FF$,SMAP,1);" ";
Locate 0,1 : Centre " "
If CHEAT=1 Then Locate 0,1 : Centre "Cheat mode on"
Screen 1 : Return
FINISHLEVEL:
Bob Off : Ink 0 : Paper 15 : SC=SC+100 : X=0 : Y=0 : X1=304 : Y1=210
For T=1 To 50
Box X,Y To X1,Y1
X=X+2 : Y=Y+2 : X1=X1-2 : Y1=Y1-2
Next T
Pen 1 : Locate ,10 : Centre "Way to go !!!"
Pen 2 : Locate ,12 : Centre "Next level coming up!"
M=1
LEVELFIRE:
M=M+1 : If M>10000 Then Screen Close 1 : Goto NEWSCREEN
If Fire(1) Then Screen Close 1 : Goto NEWSCREEN
Goto LEVELFIRE
NEWSCREEN:
SMAP=SMAP+1
If SMAP>10 and SM=1 Then SKILL=SKILL+1 : SMAP=1 : If SKILL>1 Then SKILL=1
If SMAP>20 and SM=2 Then SKILL=SKILL+1 : SMAP=11 : If SKILL>1 Then SKILL=1
Goto NEWLOOP
PAUSE:
If SOUND=1 Then Sam Play 15,5,MUS(G)*1000
For GG=1 To 500
A$=Inkey$ : If A$="p" Then P=1
If Fire(1) Then P=1
Next GG : If P=1 Then P=0 : Return
G=G+1 : If G<8 Then Goto PAUSE
G=1 : For GG=1 To 10000
A$=Inkey$ : If A$="p" Then P=1
If Fire(1) Then P=1
Next GG : If P=1 Then P=0 : Return
Goto PAUSE
GAMEOVER:
AN=11 : For T=11 To 5 Step -1 : AN=AN+1
Bob 1,PX,PY,AN : If SOUND=1 Then Sam Play 15,3,T*1000
For G=1 To 3000 : Next G
Next T : LI=LI-1 : X=9 : Y=8 : DESX=144 : DESY=128 : PX=144 : PY=128
POW=0 : For G=1 To 3 : GHOST(G,5)=0 : Next G : EG=0 : Gosub SCORESHOW
For SR=70 To 350 : Screen Display 1,,SR,, : For GR=1 To 200 : Next GR : Next SR
If LI<1 Then Goto OUT
For SR=350 To 70 Step -1 : Screen Display 1,,SR,, : For GR=1 To 200 : Next GR : Next SR : Goto SEEPACMAN
OUT:
Screen Close 1 : Screen Close 2 : Screen Show 0 : Bob Off : Screen 0
For SR=350 To 45 Step -1 : Screen Display 0,,SR,, : For GR=1 To 200 : Next GR
Next SR
If SM=1 Then SMAP=1
If SM=2 Then SMAP=11
Gosub SEESET
Pen 1 : Locate 12,13 : Print "G A M E O V E R" : Sam Play 15,8,9000
For T=1 To 40000 : Next T
Gosub CLEARBOX : If SC<HI(5) Then Goto TITLE
If CHEAT=1 Then Goto TITLE
If MM=1 Then Track Play 4 : Track Loop On
Locate 12,10 : Print " Enter your name "
Locate 12,11 : Print " --------------- "
Locate 12,12 : Print "A B C D E F G H I"
Locate 12,13 : Print "J K L M N O P Q R"
Locate 12,14 : Print "S T U V W X Y Z r"
Locate 12,15 : Print " E N T E R "
XP=91 : YP=93 : CH=1 : X$="" : ZZ=0 : N$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
EXT=0 : X=1 : Y=1
CYCLE:
Locate 16,16 : Pen 3 : Print SC;" ";X$;" "
If Jdown(1) and Y=3 Then XX=CH : ZZ=1 : Goto ENTERMODE
If ZZ=1 Then Goto ENTERMODE
If Jleft(1) and X>1 Then CH=CH-1 : XP=XP-16 : X=X-1
If Jright(1) and X<9 Then CH=CH+1 : XP=XP+16 : X=X+1
If Jup(1) and Y>1 Then CH=CH-9 : YP=YP-8 : Y=Y-1
If Jdown(1) and Y<3 Then CH=CH+9 : YP=YP+8 : Y=Y+1
Pen 1 : Locate 12,15 : Print " E N T E R " : Bob 1,XP,YP,19
If Fire(1) Then Gosub CHECKHIGHFIRE
For T=1 To 2000 : Next T : Goto CYCLE
ENTERMODE:
Bob Off : Pen 3 : Locate 12,15 : Print " E N T E R"
If Jup(1) Then CH=XX : ZZ=0 : Goto CYCLE
If Fire(1) Then Gosub CLEARBOX : Goto RESULT
Goto ENTERMODE
CHECKHIGHFIRE:
If CH=27 Then X$=Left$(X$,Len(X$)-1) : Return
If CH=28 Then EXT=1 : Return
If Len(X$)=4 Then Return
X$=X$+Mid$(N$,CH,1) : Return
RESULT:
If X$="" Then X$="ANON"
If MM=1 Then Track Stop
If SC<=HI(4) Then HI(5)=SC : HI$(5)=X$ : Goto TITLE
X=6 : For T=5 To 1 Step -1 : If SC>HI(T) Then X=X-1 : Next T
For T=5 To X Step -1 : HI(T)=HI(T-1) : HI$(T)=HI$(T-1) : Next T
HI(X)=SC : HI$(X)=X$ : Goto TITLE